6ec583f3a2e34fc88118f6b850b032becd3b179d,src/main/java/org/roaringbitmap/buffer/MutableRoaringArray.java,MutableRoaringArray,getContainer,#number#,302

Before Change


  // involves a binary search
  @Override
  public MappeableContainer getContainer(short x) {
    final int i = this.binarySearch(0, size, x);
    if (i < 0) {
      return null;
    }

After Change


    int i;
    // the rationale here is that we can often get lucky and
    // avoid a binary search:
    if((BufferUtil.toIntUnsigned(x) < size) 
        && (this.keys[BufferUtil.toIntUnsigned(x)] == x)) {
      i = BufferUtil.toIntUnsigned(x);
    } else {
      i = this.binarySearch(0, size, x);
      if (i < 0) {
        return null;
      }